package org.xxpay.core.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class StatisticsMchExample implements Serializable {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private static final long serialVersionUID = 1L;

    private Integer limit;

    private Integer offset;

    public StatisticsMchExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria implements Serializable {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andMchIdIsNull() {
            addCriterion("MchId is null");
            return (Criteria) this;
        }

        public Criteria andMchIdIsNotNull() {
            addCriterion("MchId is not null");
            return (Criteria) this;
        }

        public Criteria andMchIdEqualTo(Long value) {
            addCriterion("MchId =", value, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdNotEqualTo(Long value) {
            addCriterion("MchId <>", value, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdGreaterThan(Long value) {
            addCriterion("MchId >", value, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdGreaterThanOrEqualTo(Long value) {
            addCriterion("MchId >=", value, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdLessThan(Long value) {
            addCriterion("MchId <", value, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdLessThanOrEqualTo(Long value) {
            addCriterion("MchId <=", value, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdIn(List<Long> values) {
            addCriterion("MchId in", values, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdNotIn(List<Long> values) {
            addCriterion("MchId not in", values, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdBetween(Long value1, Long value2) {
            addCriterion("MchId between", value1, value2, "mchId");
            return (Criteria) this;
        }

        public Criteria andMchIdNotBetween(Long value1, Long value2) {
            addCriterion("MchId not between", value1, value2, "mchId");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateIsNull() {
            addCriterion("StatisticsDate is null");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateIsNotNull() {
            addCriterion("StatisticsDate is not null");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateEqualTo(Date value) {
            addCriterionForJDBCDate("StatisticsDate =", value, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateNotEqualTo(Date value) {
            addCriterionForJDBCDate("StatisticsDate <>", value, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateGreaterThan(Date value) {
            addCriterionForJDBCDate("StatisticsDate >", value, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("StatisticsDate >=", value, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateLessThan(Date value) {
            addCriterionForJDBCDate("StatisticsDate <", value, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("StatisticsDate <=", value, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateIn(List<Date> values) {
            addCriterionForJDBCDate("StatisticsDate in", values, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateNotIn(List<Date> values) {
            addCriterionForJDBCDate("StatisticsDate not in", values, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("StatisticsDate between", value1, value2, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andStatisticsDateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("StatisticsDate not between", value1, value2, "statisticsDate");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountIsNull() {
            addCriterion("PayTotalCount is null");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountIsNotNull() {
            addCriterion("PayTotalCount is not null");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountEqualTo(Integer value) {
            addCriterion("PayTotalCount =", value, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountNotEqualTo(Integer value) {
            addCriterion("PayTotalCount <>", value, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountGreaterThan(Integer value) {
            addCriterion("PayTotalCount >", value, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("PayTotalCount >=", value, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountLessThan(Integer value) {
            addCriterion("PayTotalCount <", value, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountLessThanOrEqualTo(Integer value) {
            addCriterion("PayTotalCount <=", value, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountIn(List<Integer> values) {
            addCriterion("PayTotalCount in", values, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountNotIn(List<Integer> values) {
            addCriterion("PayTotalCount not in", values, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountBetween(Integer value1, Integer value2) {
            addCriterion("PayTotalCount between", value1, value2, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalCountNotBetween(Integer value1, Integer value2) {
            addCriterion("PayTotalCount not between", value1, value2, "payTotalCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountIsNull() {
            addCriterion("PaySuccessCount is null");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountIsNotNull() {
            addCriterion("PaySuccessCount is not null");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountEqualTo(Integer value) {
            addCriterion("PaySuccessCount =", value, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountNotEqualTo(Integer value) {
            addCriterion("PaySuccessCount <>", value, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountGreaterThan(Integer value) {
            addCriterion("PaySuccessCount >", value, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("PaySuccessCount >=", value, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountLessThan(Integer value) {
            addCriterion("PaySuccessCount <", value, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountLessThanOrEqualTo(Integer value) {
            addCriterion("PaySuccessCount <=", value, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountIn(List<Integer> values) {
            addCriterion("PaySuccessCount in", values, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountNotIn(List<Integer> values) {
            addCriterion("PaySuccessCount not in", values, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountBetween(Integer value1, Integer value2) {
            addCriterion("PaySuccessCount between", value1, value2, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessCountNotBetween(Integer value1, Integer value2) {
            addCriterion("PaySuccessCount not between", value1, value2, "paySuccessCount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountIsNull() {
            addCriterion("PayTotalAmount is null");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountIsNotNull() {
            addCriterion("PayTotalAmount is not null");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountEqualTo(Long value) {
            addCriterion("PayTotalAmount =", value, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountNotEqualTo(Long value) {
            addCriterion("PayTotalAmount <>", value, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountGreaterThan(Long value) {
            addCriterion("PayTotalAmount >", value, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("PayTotalAmount >=", value, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountLessThan(Long value) {
            addCriterion("PayTotalAmount <", value, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountLessThanOrEqualTo(Long value) {
            addCriterion("PayTotalAmount <=", value, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountIn(List<Long> values) {
            addCriterion("PayTotalAmount in", values, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountNotIn(List<Long> values) {
            addCriterion("PayTotalAmount not in", values, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountBetween(Long value1, Long value2) {
            addCriterion("PayTotalAmount between", value1, value2, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalAmountNotBetween(Long value1, Long value2) {
            addCriterion("PayTotalAmount not between", value1, value2, "payTotalAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountIsNull() {
            addCriterion("PaySuccessAmount is null");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountIsNotNull() {
            addCriterion("PaySuccessAmount is not null");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountEqualTo(Long value) {
            addCriterion("PaySuccessAmount =", value, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountNotEqualTo(Long value) {
            addCriterion("PaySuccessAmount <>", value, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountGreaterThan(Long value) {
            addCriterion("PaySuccessAmount >", value, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("PaySuccessAmount >=", value, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountLessThan(Long value) {
            addCriterion("PaySuccessAmount <", value, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountLessThanOrEqualTo(Long value) {
            addCriterion("PaySuccessAmount <=", value, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountIn(List<Long> values) {
            addCriterion("PaySuccessAmount in", values, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountNotIn(List<Long> values) {
            addCriterion("PaySuccessAmount not in", values, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountBetween(Long value1, Long value2) {
            addCriterion("PaySuccessAmount between", value1, value2, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPaySuccessAmountNotBetween(Long value1, Long value2) {
            addCriterion("PaySuccessAmount not between", value1, value2, "paySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeIsNull() {
            addCriterion("PayTotalFee is null");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeIsNotNull() {
            addCriterion("PayTotalFee is not null");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeEqualTo(Long value) {
            addCriterion("PayTotalFee =", value, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeNotEqualTo(Long value) {
            addCriterion("PayTotalFee <>", value, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeGreaterThan(Long value) {
            addCriterion("PayTotalFee >", value, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeGreaterThanOrEqualTo(Long value) {
            addCriterion("PayTotalFee >=", value, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeLessThan(Long value) {
            addCriterion("PayTotalFee <", value, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeLessThanOrEqualTo(Long value) {
            addCriterion("PayTotalFee <=", value, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeIn(List<Long> values) {
            addCriterion("PayTotalFee in", values, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeNotIn(List<Long> values) {
            addCriterion("PayTotalFee not in", values, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeBetween(Long value1, Long value2) {
            addCriterion("PayTotalFee between", value1, value2, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andPayTotalFeeNotBetween(Long value1, Long value2) {
            addCriterion("PayTotalFee not between", value1, value2, "payTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountIsNull() {
            addCriterion("AgentPayTotalCount is null");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountIsNotNull() {
            addCriterion("AgentPayTotalCount is not null");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountEqualTo(Integer value) {
            addCriterion("AgentPayTotalCount =", value, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountNotEqualTo(Integer value) {
            addCriterion("AgentPayTotalCount <>", value, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountGreaterThan(Integer value) {
            addCriterion("AgentPayTotalCount >", value, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("AgentPayTotalCount >=", value, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountLessThan(Integer value) {
            addCriterion("AgentPayTotalCount <", value, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountLessThanOrEqualTo(Integer value) {
            addCriterion("AgentPayTotalCount <=", value, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountIn(List<Integer> values) {
            addCriterion("AgentPayTotalCount in", values, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountNotIn(List<Integer> values) {
            addCriterion("AgentPayTotalCount not in", values, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountBetween(Integer value1, Integer value2) {
            addCriterion("AgentPayTotalCount between", value1, value2, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalCountNotBetween(Integer value1, Integer value2) {
            addCriterion("AgentPayTotalCount not between", value1, value2, "agentPayTotalCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountIsNull() {
            addCriterion("AgentPaySuccessCount is null");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountIsNotNull() {
            addCriterion("AgentPaySuccessCount is not null");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountEqualTo(Integer value) {
            addCriterion("AgentPaySuccessCount =", value, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountNotEqualTo(Integer value) {
            addCriterion("AgentPaySuccessCount <>", value, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountGreaterThan(Integer value) {
            addCriterion("AgentPaySuccessCount >", value, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("AgentPaySuccessCount >=", value, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountLessThan(Integer value) {
            addCriterion("AgentPaySuccessCount <", value, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountLessThanOrEqualTo(Integer value) {
            addCriterion("AgentPaySuccessCount <=", value, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountIn(List<Integer> values) {
            addCriterion("AgentPaySuccessCount in", values, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountNotIn(List<Integer> values) {
            addCriterion("AgentPaySuccessCount not in", values, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountBetween(Integer value1, Integer value2) {
            addCriterion("AgentPaySuccessCount between", value1, value2, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessCountNotBetween(Integer value1, Integer value2) {
            addCriterion("AgentPaySuccessCount not between", value1, value2, "agentPaySuccessCount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountIsNull() {
            addCriterion("AgentPayTotalAmount is null");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountIsNotNull() {
            addCriterion("AgentPayTotalAmount is not null");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountEqualTo(Long value) {
            addCriterion("AgentPayTotalAmount =", value, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountNotEqualTo(Long value) {
            addCriterion("AgentPayTotalAmount <>", value, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountGreaterThan(Long value) {
            addCriterion("AgentPayTotalAmount >", value, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("AgentPayTotalAmount >=", value, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountLessThan(Long value) {
            addCriterion("AgentPayTotalAmount <", value, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountLessThanOrEqualTo(Long value) {
            addCriterion("AgentPayTotalAmount <=", value, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountIn(List<Long> values) {
            addCriterion("AgentPayTotalAmount in", values, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountNotIn(List<Long> values) {
            addCriterion("AgentPayTotalAmount not in", values, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountBetween(Long value1, Long value2) {
            addCriterion("AgentPayTotalAmount between", value1, value2, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalAmountNotBetween(Long value1, Long value2) {
            addCriterion("AgentPayTotalAmount not between", value1, value2, "agentPayTotalAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountIsNull() {
            addCriterion("AgentPaySuccessAmount is null");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountIsNotNull() {
            addCriterion("AgentPaySuccessAmount is not null");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountEqualTo(Long value) {
            addCriterion("AgentPaySuccessAmount =", value, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountNotEqualTo(Long value) {
            addCriterion("AgentPaySuccessAmount <>", value, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountGreaterThan(Long value) {
            addCriterion("AgentPaySuccessAmount >", value, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("AgentPaySuccessAmount >=", value, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountLessThan(Long value) {
            addCriterion("AgentPaySuccessAmount <", value, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountLessThanOrEqualTo(Long value) {
            addCriterion("AgentPaySuccessAmount <=", value, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountIn(List<Long> values) {
            addCriterion("AgentPaySuccessAmount in", values, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountNotIn(List<Long> values) {
            addCriterion("AgentPaySuccessAmount not in", values, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountBetween(Long value1, Long value2) {
            addCriterion("AgentPaySuccessAmount between", value1, value2, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPaySuccessAmountNotBetween(Long value1, Long value2) {
            addCriterion("AgentPaySuccessAmount not between", value1, value2, "agentPaySuccessAmount");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeIsNull() {
            addCriterion("AgentPayTotalFee is null");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeIsNotNull() {
            addCriterion("AgentPayTotalFee is not null");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeEqualTo(Long value) {
            addCriterion("AgentPayTotalFee =", value, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeNotEqualTo(Long value) {
            addCriterion("AgentPayTotalFee <>", value, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeGreaterThan(Long value) {
            addCriterion("AgentPayTotalFee >", value, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeGreaterThanOrEqualTo(Long value) {
            addCriterion("AgentPayTotalFee >=", value, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeLessThan(Long value) {
            addCriterion("AgentPayTotalFee <", value, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeLessThanOrEqualTo(Long value) {
            addCriterion("AgentPayTotalFee <=", value, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeIn(List<Long> values) {
            addCriterion("AgentPayTotalFee in", values, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeNotIn(List<Long> values) {
            addCriterion("AgentPayTotalFee not in", values, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeBetween(Long value1, Long value2) {
            addCriterion("AgentPayTotalFee between", value1, value2, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andAgentPayTotalFeeNotBetween(Long value1, Long value2) {
            addCriterion("AgentPayTotalFee not between", value1, value2, "agentPayTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountIsNull() {
            addCriterion("RechargeTotalCount is null");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountIsNotNull() {
            addCriterion("RechargeTotalCount is not null");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountEqualTo(Integer value) {
            addCriterion("RechargeTotalCount =", value, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountNotEqualTo(Integer value) {
            addCriterion("RechargeTotalCount <>", value, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountGreaterThan(Integer value) {
            addCriterion("RechargeTotalCount >", value, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("RechargeTotalCount >=", value, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountLessThan(Integer value) {
            addCriterion("RechargeTotalCount <", value, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountLessThanOrEqualTo(Integer value) {
            addCriterion("RechargeTotalCount <=", value, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountIn(List<Integer> values) {
            addCriterion("RechargeTotalCount in", values, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountNotIn(List<Integer> values) {
            addCriterion("RechargeTotalCount not in", values, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountBetween(Integer value1, Integer value2) {
            addCriterion("RechargeTotalCount between", value1, value2, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalCountNotBetween(Integer value1, Integer value2) {
            addCriterion("RechargeTotalCount not between", value1, value2, "rechargeTotalCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountIsNull() {
            addCriterion("RechargeSuccessCount is null");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountIsNotNull() {
            addCriterion("RechargeSuccessCount is not null");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountEqualTo(Integer value) {
            addCriterion("RechargeSuccessCount =", value, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountNotEqualTo(Integer value) {
            addCriterion("RechargeSuccessCount <>", value, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountGreaterThan(Integer value) {
            addCriterion("RechargeSuccessCount >", value, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("RechargeSuccessCount >=", value, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountLessThan(Integer value) {
            addCriterion("RechargeSuccessCount <", value, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountLessThanOrEqualTo(Integer value) {
            addCriterion("RechargeSuccessCount <=", value, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountIn(List<Integer> values) {
            addCriterion("RechargeSuccessCount in", values, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountNotIn(List<Integer> values) {
            addCriterion("RechargeSuccessCount not in", values, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountBetween(Integer value1, Integer value2) {
            addCriterion("RechargeSuccessCount between", value1, value2, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessCountNotBetween(Integer value1, Integer value2) {
            addCriterion("RechargeSuccessCount not between", value1, value2, "rechargeSuccessCount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountIsNull() {
            addCriterion("RechargeTotalAmount is null");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountIsNotNull() {
            addCriterion("RechargeTotalAmount is not null");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountEqualTo(Long value) {
            addCriterion("RechargeTotalAmount =", value, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountNotEqualTo(Long value) {
            addCriterion("RechargeTotalAmount <>", value, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountGreaterThan(Long value) {
            addCriterion("RechargeTotalAmount >", value, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("RechargeTotalAmount >=", value, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountLessThan(Long value) {
            addCriterion("RechargeTotalAmount <", value, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountLessThanOrEqualTo(Long value) {
            addCriterion("RechargeTotalAmount <=", value, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountIn(List<Long> values) {
            addCriterion("RechargeTotalAmount in", values, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountNotIn(List<Long> values) {
            addCriterion("RechargeTotalAmount not in", values, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountBetween(Long value1, Long value2) {
            addCriterion("RechargeTotalAmount between", value1, value2, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalAmountNotBetween(Long value1, Long value2) {
            addCriterion("RechargeTotalAmount not between", value1, value2, "rechargeTotalAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountIsNull() {
            addCriterion("RechargeSuccessAmount is null");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountIsNotNull() {
            addCriterion("RechargeSuccessAmount is not null");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountEqualTo(Long value) {
            addCriterion("RechargeSuccessAmount =", value, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountNotEqualTo(Long value) {
            addCriterion("RechargeSuccessAmount <>", value, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountGreaterThan(Long value) {
            addCriterion("RechargeSuccessAmount >", value, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("RechargeSuccessAmount >=", value, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountLessThan(Long value) {
            addCriterion("RechargeSuccessAmount <", value, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountLessThanOrEqualTo(Long value) {
            addCriterion("RechargeSuccessAmount <=", value, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountIn(List<Long> values) {
            addCriterion("RechargeSuccessAmount in", values, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountNotIn(List<Long> values) {
            addCriterion("RechargeSuccessAmount not in", values, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountBetween(Long value1, Long value2) {
            addCriterion("RechargeSuccessAmount between", value1, value2, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeSuccessAmountNotBetween(Long value1, Long value2) {
            addCriterion("RechargeSuccessAmount not between", value1, value2, "rechargeSuccessAmount");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeIsNull() {
            addCriterion("RechargeTotalFee is null");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeIsNotNull() {
            addCriterion("RechargeTotalFee is not null");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeEqualTo(Long value) {
            addCriterion("RechargeTotalFee =", value, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeNotEqualTo(Long value) {
            addCriterion("RechargeTotalFee <>", value, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeGreaterThan(Long value) {
            addCriterion("RechargeTotalFee >", value, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeGreaterThanOrEqualTo(Long value) {
            addCriterion("RechargeTotalFee >=", value, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeLessThan(Long value) {
            addCriterion("RechargeTotalFee <", value, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeLessThanOrEqualTo(Long value) {
            addCriterion("RechargeTotalFee <=", value, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeIn(List<Long> values) {
            addCriterion("RechargeTotalFee in", values, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeNotIn(List<Long> values) {
            addCriterion("RechargeTotalFee not in", values, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeBetween(Long value1, Long value2) {
            addCriterion("RechargeTotalFee between", value1, value2, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andRechargeTotalFeeNotBetween(Long value1, Long value2) {
            addCriterion("RechargeTotalFee not between", value1, value2, "rechargeTotalFee");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("CreateTime is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("CreateTime is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("CreateTime =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("CreateTime <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("CreateTime >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("CreateTime >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("CreateTime <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("CreateTime <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("CreateTime in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("CreateTime not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("CreateTime between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("CreateTime not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("UpdateTime is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("UpdateTime is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("UpdateTime =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("UpdateTime <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("UpdateTime >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("UpdateTime >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("UpdateTime <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("UpdateTime <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("UpdateTime in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("UpdateTime not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("UpdateTime between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("UpdateTime not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria implements Serializable {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion implements Serializable {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}